/**
 * 月度计划-日历工具类
 *
 * created by wuyp on 2019-05-28 20:11:57.
 */
import Vue from 'vue'
import { holidayList, specialWDList } from '@/mock/calendarMock.js'

 /**
 * 判断是否节假日（非特殊工作日的周六周日+国家假日）
 * 1.获取节假日List(holidayList);
 * 2.判断date是否在holidayList;
 * 3.在则返回true，否则返回false;
 * @param {*} date 待检测的日期
 * @returns {boolean} 是否节假日
 */
export function isDefHoliday (date) {
  if (date === null || date === '') {
    return false
  }
  date = new Date(date)
  // 获取节假日列表
  var holidayList = (!Vue.prototype.UtilJs.isEmpty(getHolidays()) && getHolidays().length > 0) ? getHolidays() : []
  var wd = date.getDay()
  if (wd === 6 || wd === 0) { // 周六或周日
    return !isSpecialWD(date)
  }
  var r = holidayList.filter(item => {
    return Vue.prototype.UtilJs.compareDate(item.date, date) === 0
  })
  return (!Vue.prototype.UtilJs.isEmpty(r) && r.length > 0)
}

/**
 * 判断是否特殊工作日
 * @param {*} date 待检测的日期
 * @returns {boolean} 是否特殊工作日
 */
export function isSpecialWD (date) {
  if (date === null || date === '') {
    return false
  }
  // 获取特殊工作日信息列表
  var specialWDList = (!Vue.prototype.UtilJs.isEmpty(getSpecialWorkDays()) && getSpecialWorkDays().length > 0) ? getSpecialWorkDays() : []
  var r = specialWDList.filter(item => {
    return Vue.prototype.UtilJs.compareDate(item.date, date) === 0
  })
  return (!Vue.prototype.UtilJs.isEmpty(r) && r.length > 0)
}

/**
 * TODO 获取节假日列表
 * @returns {Array} 节假日列表
 */
function getHolidays () {
  return holidayList
}

/**
 * TODO 获取特殊工作日列表
 * @returns {Array} 特殊工作日列表
 */
function getSpecialWorkDays () {
  return specialWDList
}
